home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 1
/
Atari Mega Archive - Volume 1.iso
/
sound
/
players
/
naudio.lzh
/
naudio
/
doc
/
intro_s.txt
next >
Wrap
Text File
|
1993-11-23
|
9KB
|
287 lines
INTRO
NAUDIO: Die Library die hardwareunabhängi-
ge Soundprogrammierung auf allen 16/32-Bit
Ataris ermöglicht! Die ideale Bibliothek für
den Spieleprogrammierer oder denjenigen,
dem für sein Programm noch der entschei-
dende Pfiff fehlt.
Die Mulle KybernetiK NAUDIO-Library ermöglicht
es auf einfachste Weise Samples und ProTrak-
kermodule zu laden, abzuspielen und wieder zu
speichern. Dabei erledigt NAUDIO die ganze Ar-
beit und läßt ihnen Raum und Zeit für die eigent-
liche Applikationsprogrammierung.
NAUDIO wurde mit und für den PURE C-Compi-
ler/Assembler entwickelt. Durch die PURE-C ei-
gene Funktionsaufrufskonvention ist es den mei-
sten anderen C-Compilern versagt, NAUDIO zu
benutzen. Assemblerprogrammierern hingegen
sind keine Einschränkungen auferlegt. Da das
Objektformat zu PURE-PASCAL kompatibel ist,
sollte es möglich sein, auch mit diesem Produkt
NAUDIO-Applikationen zu schreiben.
Hier ein kleiner Ausschnitt dessen, was die NAU-
DIO-Software leistet:
o Lädt 8-bit-Samples der Formate, 8SVX
(Amiga IFF Format), 'rohe' Sampledaten
und SampleStar Dateien sowie das Mulle
KybernetiK NSVX Format
o Speichert 8-bit-Samples im NSVX- und
8SVX-Format oder 'roh'. Wahlweise mit
Kompression
o Komprimiert Samples entweder
verlustfrei, (die Kompressionsrate liegt
typischerweise bei 10-40%), oder mit
Verlust (Kompressionsrate immer 50%)
o Spielt ProTracker Module
o Spielt NT_COMP Segmentdateien
o Benutzt folgenden Ausgabegeräte:
PSG Soundchip (ST)
SampleStar Sampler (Printer Port)
STE Digital DMA Audio 2 x 8 Bit
FALCON Digital DMA Audio 8 x
16 Bit
o Die Ausgabefrequenz ist variabel
o Automatische Erkennung von unsigned
und signed Samples beim Laden 'roher'
Sampledaten
o Spielt bis zu acht Samples gleichzeitig,
davon garantiert vier auf jedem
Ausgabegerät.
o Lautstärke und Abspielgeschwindigkeit
der Samples können zur Abspielzeit
verändert werden
o Abspielen erfolgt im Hintergrund,
ungestört von Mausbewegungen!
o Durch extrem optimierten Kode äußerst
CPU-Zeit sparend
o Durch modularen Aufbau vielseitig
einsetz- und veränderbar
Die Einfachheit der Benutzung von NAUDIO läßt
sich am besten durch zwei kleine Beispielpro-
gramme verdeutlichen. Das erste lädt ein
Sample aus einer Datei und spielt dieses mit der
Frequenz ab, mit der es aufgenommen wurde:
#include <naudio\naudio.h>
char file[] = "..\\samples\\zarths.nsx"
main()
{
n_sample *p;
channel *q;
naudio_init();
naudio_all();
naudio_engine( SAMPLES);
if( p = nsample_load( file))
{
naudio_start( 0);
q = nsample_play( p, 0, 64, 1);
while( q->play);
naudio_done();
}
return( 0);
}
Das nächste Beispielprogramm - dem ersten
sehr ähnlich - lädt und spielt ein ProTracker Mo-
dul:
#include <naudio\naudio.h>
char file[] = "..\\modules\\beat_dis.mod";
main()
{
n_module *p;
naudio_init();
naudio_all();
naudio_engine( NTRACKER);
if( p = nmodule_load( file))
{
naudio_start( 0);
nmodule_play( p, 0, 0L, 0, 2);
while( ntrack->song);
naudio_done();
}
return( 0);
}
Die Handhabung der NAUDIO-Software ist so
einfach, daß selbst C-Anfänger, die vielleicht ei-
nen Monat Programmierpraxis haben, bereits
diese Software benutzen und interessante Pro-
gramme schreiben können
Vorwort & Legalitäten
Die Dokumentation ist in drei Abschnitte unter-
teilt. Da ist zum einen die "Einführung", die an-
hand von kleinen Beispielprogrammen die NAU-
DIO-Library unter die Lupe nimmt und als einfüh-
render Text firmiert. Mit Hilfe der Einführung sollte
es selbst dem blutigen Anfänger in kürzester Zeit
möglich sein, 'geil' klingende Programme zu
schreiben, um die Nachbarschaft und Anver-
wandten damit zu beeindrucken.
Die Kapitel des "Technischen Handbuchs" (T.H.)
behandeln die technischen Aspekte von NAU-
DIO und beleuchten auch obskurste Details. Das
"Reference Manual" (R.M.) ist das Nachschlage-
werk für die Variablen und Funktionen der Biblio-
thek.
Das R.M. ist in Englisch! Da die PURE Libraries
aber auch nicht anders dokumentiert worden
sind, hält sich das Schamgefühl darüber in Gren-
zen.
Die NAUDIO-Bibliothek ist natürlich! nach be-
stem Wissen und Gewissen geschrieben worden
und hat inklusive Dokumentationserstellung
mehr als zwei Jahre Arbeit verschlungen. Es ist
zwar nicht sooo kompliziert, digitalen Sound auf
dem ST erzeugen(1), aber eine gut strukturierte
Bücherei zu schreiben, die möglichst vielen ver-
schiedenen Anwendungen gerecht wird, darüber
hinaus einfach zu verwenden und dabei tech-
nisch anspruchsvoll ist, braucht denn doch seine
Zeit. Zudem benötigt die Dokumentation auch
ein erkleckliches Zeitquantum.
Mulle KybernetiK kann keinerlei Garantien oder
Versprechungen in Bezug auf die Performanz der
Bibliothek und Ihrer Einsetzbarkeit in allen Le-
benslagen machen. Eine Haftung für Folgeschä-
den die aus der Benutzung oder fehlenden Nutz-
barkeit der Bibliothek auftreten könnten, wird
nicht übernommen.
Trotz dieser legalen Einschränkungen, viel Spaß
mit NAUDIO
Installation
Am besten: Sie machen die Installation nach
"Gefühl". Die Includedateien müssen in einem
Ordner NAUDIO in ihrem Includeverzeichnis ste-
hen und die Objektdateien sollten in ihrem Libra-
ryverzeichnis stehen.
Ansonsten: Kopieren sie von Ihrer Diskette, den
Ordner NAUDIO\HEADER\NAUDIO in den Ordner,
der ihre Includedateien oder Headerdateien ent-
hält. Kopieren sie den Inhalt des Ordners NAU-
DIO\LIB in den Ordner der ihre sonstigen Funkti-
onsbibliotheken enthält. Also sollte die Directory-
struktur ähnlich dieser aussehen (es wird nur ein
Ausschnitt gezeigt):
..\HEADER\
..\HEADER\NAUDIO
..\HEADER\NAUDIO\ndefines.h
..\HEADER\NAUDIO\naudio.h etc.
..\LIB\PCSTART.O
..\LIB\PCGEMLIB.LIB
..\LIB\NAUDIO.LIB
..\LIB\HELPER.LIB
..\LIB\DACS\SDAC2.O
..\LIB\STD.TLK
..\LIB\NAUDIO.PRJ
Bevorzugen sie einen CLI (Gulam, o.ä.) anstelle
der PURE-C Graphik-Shell (weise Entscheidung),
dann geht es so am elegantesten:
Kopieren sie den gesamten Ordner NAUDIO auf
eine Partition ihrer Festplatte oder aber auf eine
andere Diskette.
Geben sie dem Compiler einen alternativen In-
cludepfad an. Der PURE-C Compiler pcc erlaubt
die mehrfache Nutzung des -I Switches. Also so
z.B.:
pcc -I\pc\include -I\naudio\header foo.c
Auch ihr Linker muß wissen, wo die NAUDIO-Bü-
chereien sind, die zu ihrem Programmtext dazu-
gebunden werden sollen. Da Pure Software einen
-L Switch zur Angabe eines Librarypfades
vergessen hat, muß man sich auf andere Weise
behelfen.
Glücklicherweise erlaubt der Linker die Mehr-
fachnutzung der -c Option, mit der Kommando-
dateien eingelesen werden. Man erstellt sich also
eine Datei namens "NAUDIO.TLK" in der sämtli-
che Pure Bibliotheken und die im NAUDIO\LIB
Ordner stehenden Libraries angegeben werden:
d:\lib\pcfltlib.lib
d:\lib\pcextlib.lib
d:\lib\pcstdlib.lib
d:\lib\pctoslib.lib
d:\lib\pcgemlib.lib
d:\lib\pclnalib.lib
d:\naudio\lib\naudio.lib
d:\naudio\lib\nalloc.lib
d:\naudio\lib\dacs\sdac2.o
Beim Aufruf von plink hieße es dann:
plink -o=foo.prg d:\lib\pcvstart.o foo.o
-c=NAUDIO.TLK
Da wie gesagt plink auch Mehrfachnutzung von
-c erlaubt wäre auch folgendes möglich
plink -o=bar.prg d:\lib\pcvstart.o
-c=projekt.tlk -c=NAUDIO.TLK
Eine Beispiellinkdatei ist in dem LIB-Ordner als
STD.TLK Datei zu finden.
Leider ist es anscheinend in der PURE-C Gra-
phikshell (also PC.PRG) immer noch nicht mög-
lich, einen zweiten Librarypfad anzugeben. Aus
diesem Grunde scheint es für PC-Benutzer zwin-
gend zu sein, die Libraries aus dem NAUDIO\LIB
Ordner in den Ordner der anderen PC Libraries
zu kopieren. Wenn man möchte kann man je-
doch dem PC-Compiler einen zweiten Include-
pfad angeben, indem man in dem Menüeintrag
Settings/Compiler hinter dem dort stehende De-
faultwert einen zweiten Pfad, abgetrennt durch
ein Semikolon ';', eingibt. Al